home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / basic / madin201.zip / MADIN.SUB next >
Text File  |  1987-07-29  |  3KB  |  78 lines

  1.       SUB MADIN STATIC
  2.  
  3.       SHARED ROW%,COL%,FLDSIZ%,FLDFG%,FLDBG%,CURSFG%,CURSBG%,CHRFG%,CHRBG%,FLDCHR%,CURCHR%,SYSFIL$,FILCHR$,SYSTYP%,SYSNUM,SYSALPHA$
  4.  
  5.       SYSALPHA$=""
  6.       LOCATE ROW%,COL%
  7.       FOR X=1 TO FLDSIZ%
  8.       COLOR FLDFG%,FLDBG%
  9.       PRINT CHR$(FLDCHR%);
  10.       NEXT X
  11.  
  12. mi060:IF FLDSIZ%=LEN(SYSALPHA$) THEN GOTO mi110
  13.       LOCATE ROW%,COL%
  14.       COLOR CURSFG%,CURSBG%
  15.       PRINT CHR$(CURCHR%);
  16.       LOCATE ROW%,COL%
  17.  
  18. mi110:STROKE$=INKEY$
  19.       IF LEN(SYSALPHA$)<>FLDSIZ% THEN GOTO mi230
  20.       LOCATE ROW%,COL%-1
  21.       COLOR CHRFG%,CHRBG%
  22.       PRINT RIGHT$(SYSALPHA$,1);
  23.       FOR Y=1 TO 200:NEXT Y
  24.       LOCATE ROW%,COL%-1
  25.       COLOR CURSFG%,CURSBG%
  26.       PRINT CHR$(CURCHR%);
  27.       FOR Z=1 TO 200:NEXT Z
  28.  
  29. mi230:IF STROKE$ = "" THEN GOTO mi110
  30.       IF STROKE$ = CHR$(13) THEN GOTO mi390
  31.       IF STROKE$ = CHR$(8) AND LEN(SYSALPHA$)=0 THEN GOTO mi110
  32.       IF STROKE$ = CHR$(8) AND LEN(SYSALPHA$)=FLDSIZ% THEN LOCATE ROW%,COL%-1
  33.       IF STROKE$ = CHR$(8) THEN COLOR FLDFG%,FLDBG%::PRINT CHR$(FLDCHR%);:COL%=COL%-1:SYSALPHA$=LEFT$(SYSALPHA$,LEN(SYSALPHA$)-1):GOTO mi060
  34.       IF SYSTYP%=1 OR SYSTYP%=3 THEN GOTO mi310    'ALPHANUMERIC FIELD
  35.       IF SYSTYP%=2 THEN GOTO MI320    'NUMERIC FIELD
  36.       SYSTYP%=1               'DEFAULT TO ALPHA IF NOT SET TO 1 OR 2
  37.  
  38. mi310:IF STROKE$ < CHR$(32) OR STROKE$ > CHR$(126) THEN GOTO mi110 ELSE GOTO mi330
  39.  
  40. MI320:IF STROKE$ < CHR$(48) OR STROKE$ > CHR$(57) THEN GOTO mi110 ELSE GOTO mi330
  41.  
  42. mi330:IF FLDSIZ%=LEN(SYSALPHA$) THEN GOTO mi110
  43.       SYSALPHA$=SYSALPHA$+STROKE$
  44.       COLOR CHRFG%,CHRBG%
  45.       PRINT STROKE$;
  46.       COL%=COL%+1
  47.       GOTO mi060
  48.  
  49. mi390:IF LEN(SYSALPHA$)<>FLDSIZ% THEN LOCATE ROW%,COL%:COLOR FLDFG%,FLDBG%:PRINT CHR$(FLDCHR%);:GOTO mi430
  50.       LOCATE ROW%,COL%-1
  51.       COLOR CHRFG%,CHRBG%
  52.       PRINT RIGHT$(SYSALPHA$,1);
  53.  
  54. mi430:IF SYSTYP%=1 THEN GOTO mi470          'ALPHA RIGHT
  55.       IF SYSTYP%=2 THEN GOTO mi590          'NUMERIC
  56.       IF SYSTYP%=3 THEN GOTO mi530          'ALPHA LEFT
  57.       SYSTYP%=3:GOTO MI530              'DEFAULT TO ALPHA LEFT
  58.  
  59. mi470:FOR X=1 TO FLDSIZ%
  60.       LET SYSFIL$=SYSFIL$+FILCHR$
  61.       NEXT X
  62.  
  63.       LET SYSFIL$=RIGHT$(SYSFIL$,FLDSIZ%)
  64.       LET SYSALPHA$=SYSFIL$+SYSALPHA$
  65.       LET SYSALPHA$=RIGHT$(SYSALPHA$,FLDSIZ%)
  66.  
  67. mi530:FOR X=1 TO FLDSIZ%
  68.       LET SYSFIL$=SYSFIL$+FILCHR$
  69.       NEXT X
  70.  
  71.       LET SYSFIL$=RIGHT$(SYSFIL$,FLDSIZ%)
  72.       LET SYSALPHA$=SYSALPHA$+SYSFIL$
  73.       LET SYSALPHA$=LEFT$(SYSALPHA$,FLDSIZ%)
  74.  
  75. mi590:IF SYSTYP%=2 THEN SYSNUM=VAL(SYSALPHA$)
  76.  
  77.       END SUB
  78.